-
Notifications
You must be signed in to change notification settings - Fork 230
Integrate picsar_qed in ablastr : move in the Schwinger process #6427
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: development
Are you sure you want to change the base?
Integrate picsar_qed in ablastr : move in the Schwinger process #6427
Conversation
for more information, see https://pre-commit.ci
| convert_from_to<unit_system::heaviside_lorentz, UnitSystem, quantity::rate>(1.0_rt); | ||
|
|
||
| constexpr auto pi = ablastr::constant::math::pi; | ||
| if(epsi != 0.0_rt && eta != 0.0_rt){ |
Check notice
Code scanning / CodeQL
Equality test on floating-point values Note
| convert_from_to<unit_system::heaviside_lorentz, UnitSystem, quantity::rate>(1.0_rt); | ||
|
|
||
| constexpr auto pi = ablastr::constant::math::pi; | ||
| if(epsi != 0.0_rt && eta != 0.0_rt){ |
Check notice
Code scanning / CodeQL
Equality test on floating-point values Note
| if(epsi != 0.0_rt && eta != 0.0_rt){ | ||
| return coeff*rate_conv*epsi*eta*std::exp(-pi/epsi)/std::tanh(pi*eta/epsi); | ||
| } | ||
| else if(epsi == 0.0_rt){ |
Check notice
Code scanning / CodeQL
Equality test on floating-point values Note
Summary
This PR is the second step of a long-overdue process: the integration of picsar_qed into ablastr. Specifically, this PR moves the Schwinger pair production process into
ablastr/qedand makes the necessary changes in the rest of the code . In addition, some details on the Schwinger process are added to the documentation.The code is adapted from PICSAR QED, with minor changes.
Main changes:
Calculations for the Schwinger process are performed using
amrex::Realandamrex::RealVectND<3>types.Source/ablastr/qed/SchwingerProcess.H: this new source file contains the methods that compute the pair production rateSource/ablastr/qed/UnitConversion.H: QED-related calculations are performed internally using the Heaviside-Lorentz units. This new file contains helper functions to convert quantities between these units and SI units.Source/Particles/ElementaryProcess/QEDInternals/SchwingerProcessWrapper.H: this file is no-longer needed. The only one method that was implemented there is now inablastr/qed/SchwingerProcess.H.Source/Particles/ElementaryProcess/QEDSchwingerProcess.H: in this file a simple name change to call the new method inablastrinstead of the one in the wrapper is performed.Source/Particles/MultiParticleContainer.H/cpp: the Schwinger process no longer requires the PICSAR QED library. Therefore, the relevant code is moved out of the#ifdef WARPX_QED ... #endifsections.Source/Evolve\WarpXEvolve.cpp: same as aboveDocs/source/usage/parameters.rst: the documentation is updated to reflect that the Schwinger process no longer requires the PICSAR QED library.Docs/source/theory/multiphysics/qed.rst: some details on the physics of the Schwinger process are added to the documentation.Docs/source/refs.biba reference to a paper cited inDocs/source/theory/multiphysics/qed.rstis added.Regression/Checksum/benchmarks_json/test_3d_qed_schwinger_4.json: I had to reset the checksum, but the change is really tiny (and the python script passes) .